package cn.good.yan.w2;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import javax.servlet.http.HttpSession;

/**
 * 2 Web 登录页
 *
 * @author shengren.yan
 * @create 2023-10-01
 */
@Controller
public class LoginController {

    // list页 主页
    @GetMapping(value = {"/","/home"})
    public String list(HttpSession session){
        // 是否登录过
        Object loginState = session.getAttribute("LoginState");
        if(null!=loginState){
            // 之前登录过
            return "main/index";
        }else {
            // 没有登录过
            return "main/login";
        }
    }

    /**
     * 来登录页  登录页就是 login
     * @return
     */
    @GetMapping(value = {"/login"})
    public String loginPage(){
        return "main/login";
    }

    /**
     * 登陆请求
     * @return {@link String}
     */
    @PostMapping("/doLogin")
    public String doLogin(HttpSession session, String username, String password, Model model){
//        String pass = userService.selectPassword(username);
        String pass = "123456";  // 密码 - 模拟登陆成功
        if (password.equals(pass)) {
            // 登陆成功 - 放入session中
            session.setAttribute("LoginState", username);
            System.out.println(username);
            model.addAttribute("LoginState", username);
            // 重定向  : 名字 在默认视图解析器里配置 ， 重定向可以防止重复提交
            return "redirect:home";
        }
        model.addAttribute("loginMsg","用户名或密码错误！");
        // 登陆失败，返回登陆页
        return "main/login";
    }

    // 退出登录
    @GetMapping("/doQuit")
    public String doQuit(HttpSession session){
        session.removeAttribute("LoginState");
        session.invalidate();
        return "redirect:home";
    }

}
